// 存储分类的数据

import { topCategory } from '@/api/constants'
import { findHeadCategory } from '@/api/home'
export default {
  namespaced: true,
  state: () => {
    return {
      // 如果默认是空数组，看不见默认的就个分类 等数据加载完之后才会看到
      // 所以：根据常量数据来生成默认的顶级分类数据，不会出现没数据的情况
      list: topCategory.map(item => ({ name: item })) // ?
    }
  },
  // 加载数据成功后需要修改list
  mutations: {
    setCategory (state, headCategory) {
      state.list = headCategory
    },
    // 此方法改变open为true
    open (state, item) {
      const category = state.list.find(category => category.id === item.id)
      category.open = true
    },
    // 此方法改变open为false
    hide (state, item) {
      const category = state.list.find(category => category.id === item.id)
      category.open = false
    }
  },
  // 需要向后台加载数据，需要action函数获取数据
  actions: {
    async getCategory ({ commit }) {
      const { result } = await findHeadCategory()
      // console.log(data)
      // 获取数据成功，调用mutations修改数据
      // 向result对象中添加一个属性 控制显示与隐藏
      result.forEach(item => {
        // 默认是false
        item.open = false
      })
      commit('setCategory', result)
    }
  }
}
